//package com.example.demo.async;
//
//import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler;
//import org.springframework.scheduling.annotation.AsyncConfigurer;
//import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
//import org.springframework.stereotype.Component;
//
//import java.lang.reflect.Method;
//import java.util.concurrent.Executor;
//@Component
//public class JAsyncConfigurer implements AsyncConfigurer {
//
//
//    public Executor getAsyncExecutor() {
//        ThreadPoolTaskExecutor threadPool = new ThreadPoolTaskExecutor();
//        threadPool.setCorePoolSize(2);//当前线程数
//        threadPool.setMaxPoolSize(120);// 最大线程数
//        threadPool.setQueueCapacity(1);//线程池所使用的缓冲队列
//        threadPool.setWaitForTasksToCompleteOnShutdown(true);//等待任务在关机时完成--表明等待所有线程执行完
//        threadPool.setAwaitTerminationSeconds(60 * 15);// 等待时间 （默认为0，此时立即停止），并没等待xx秒后强制停止
//        threadPool.setThreadNamePrefix("MyAsync-");//  线程名称前缀
//        threadPool.initialize(); // 初始化
//        return threadPool;
//    }
//
//
//    public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() {
//
//        return new MyAsyncExceptionHandler();
//    }
//
//    /**
//     * 自定义异常处理类
//     * throwable
//     * method异常方法
//     * obj参数
//     */
//    class MyAsyncExceptionHandler implements AsyncUncaughtExceptionHandler {
//
//        //手动处理捕获的异常,
//        @Override
//        public void handleUncaughtException(Throwable throwable, Method method, Object... obj) {
//            System.out.println("-------------》》》捕获线程异常信息");
//            for (Object param : obj) {
//            }
//        }
//
//    }
//}
